From 08a8df7dbfc3714f5230de387e9d99ea1627b5ba Mon Sep 17 00:00:00 2001 From: robertl Date: Thu, 6 Aug 2009 01:54:06 +0000 Subject: [PATCH] Add new versioned request for server update. --- gui/upgrade.cpp | 42 +++++++++++++++++++++++++++++------------- gui/upgrade.h | 2 +- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/gui/upgrade.cpp b/gui/upgrade.cpp index b8efbdfbb..f2bcdaa1b 100644 --- a/gui/upgrade.cpp +++ b/gui/upgrade.cpp @@ -1,5 +1,5 @@ // -*- C++ -*- -// $Id: upgrade.cpp,v 1.3 2009/08/03 05:16:23 robertl Exp $ +// $Id: upgrade.cpp,v 1.4 2009/08/06 01:54:06 robertl Exp $ /* Copyright (C) 2009 Robert Lipe, robertlipe@gpsbabel.org @@ -23,9 +23,9 @@ #include "upgrade.h" #include -//#include #include #include +#include static const bool testing = true; // static const bool testing = false; @@ -52,8 +52,20 @@ UpgradeCheck::~UpgradeCheck() } } -void UpgradeCheck::changeEvent(QEvent *) +// See http://doc.trolltech.com/4.5/qsysinfo.html to interpret results +QString UpgradeCheck::UpgradeCheck::getOsName(void) { + // Do not translate these strings. +#if defined (Q_OS_LINUX) + return "Linux"; +#elif defined (Q_OS_MAC) + return QString("Mac %1").arg(QSysInfo::MacintoshVersion); +#elif defined (Q_OS_WIN) + return QString("Windows %1").arg(QSysInfo::WindowsVersion); +#elif + return "Unknown"' +#endif + } UpgradeCheck::updateStatus UpgradeCheck::checkForUpgrade(const QString ¤tVersion, @@ -69,6 +81,7 @@ UpgradeCheck::updateStatus UpgradeCheck::checkForUpgrade(const QString ¤tV // Not time to check yet. return UpgradeCheck::updateUnknown; } + http = new QHttp; connect(http, SIGNAL(requestFinished(int, bool)), @@ -77,15 +90,16 @@ UpgradeCheck::updateStatus UpgradeCheck::checkForUpgrade(const QString ¤tV this, SLOT(readResponseHeader(const QHttpResponseHeader &))); QHttpRequestHeader header("POST", "/upgrade_check.html"); - header.setValue("Host", "www.gpsbabel.org"); - header.setContentType("application/x-www-form-urlencoded"); - QString args = "current_version=" + currentVersion; - args += "&installation=" + installationUuid; header.setValue("Host", "www.gpsbabel.org"); - + header.setValue("Host", "www.gpsbabel.org"); + header.setContentType("application/x-www-form-urlencoded"); + header.setValue("Host", "www.gpsbabel.org"); + + QString args = "current_version=" + currentVersion; + args += "&installation=" + installationUuid; + args += "&os=" + getOsName(); + http->setHost("www.gpsbabel.org"); -// http->request(header); - http->request(header, args.toUtf8()); -// httpRequestId = http->get("/upgrade_check.html"); + httpRequestId = http->request(header, args.toUtf8()); return UpgradeCheck::updateUnknown; } @@ -149,16 +163,18 @@ void UpgradeCheck::httpRequestFinished(int requestId, bool error) response = tr("
A new version of GPSBabel is available
" "Your version is %1
" "The latest version is %2
") - .arg(currentVersion) - .arg(updateVersion); + .arg(currentVersion) + .arg(updateVersion); break; } } + if (response.length()) { QMessageBox::information(0, tr("Upgrade"), response); upgradeWarningTime = QDateTime(QDateTime::currentDateTime()); } + delete http; http = 0; } diff --git a/gui/upgrade.h b/gui/upgrade.h index 914e305a7..89753d794 100644 --- a/gui/upgrade.h +++ b/gui/upgrade.h @@ -48,7 +48,6 @@ public: } protected: - void changeEvent(QEvent *e); private: QString currentVersion; @@ -58,6 +57,7 @@ protected: bool httpRequestAborted; QString latestVersion; QDateTime upgradeWarningTime; // invalid time if this object never issued. + QString getOsName(void); private slots: void httpRequestFinished(int requestId, bool error); -- 2.30.2